applications of automata